package com.gqj.meter.service;

import java.util.List;
import java.util.Map;

import com.gqj.common.core.domain.entity.SysUser;
import com.gqj.meter.domain.MdMeter;
import com.gqj.meter.domain.MdOtherMaterial;

/**
 * 电能表Service接口
 *
 * @author lxq
 * @date lxq-02-10
 */
public interface IMdMeterService {
    /**
     * 查询电能表
     *
     * @param meterId 电能表主键
     * @return 电能表
     */
    public MdMeter selectMdMeterByMeterId(Long meterId);

    /**
     * 查询电能表列表
     *
     * @param mdMeter 电能表
     * @return 电能表集合
     */
    public List<MdMeter> selectMdMeterList(MdMeter mdMeter);

    /**
     * 新增电能表
     *
     * @param mdMeter 电能表
     * @return 结果
     */
    public int insertMdMeter(MdMeter mdMeter);

    /**
     * 修改电能表
     *
     * @param mdMeter 电能表
     * @return 结果
     */
    public int updateMdMeter(MdMeter mdMeter);

    /**
     * 批量删除电能表
     *
     * @param meterIds 需要删除的电能表主键集合
     * @return 结果
     */
    public int deleteMdMeterByMeterIds(Long[] meterIds);

    /**
     * 删除电能表信息
     *
     * @param meterId 电能表主键
     * @return 结果
     */
    public int deleteMdMeterByMeterId(Long meterId);

    /**
     * 校验资产编号是否唯一
     *
     * @param mdMeter 电能表
     * @return 结果
     */
    public String checkMeterNoUnique(MdMeter mdMeter);

    /**
     * 校验rfid编号/条形码是否唯一
     *
     * @param mdMeter 电能表
     * @return 结果
     */
    public String checkRfidNoUnique(MdMeter mdMeter);

    /**
     * 导入电能表数据
     *
     * @param meterList       电能表列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName        操作用户
     * @return 结果
     */
    public String importMeter(List<MdMeter> meterList, Boolean isUpdateSupport, String operName);

    //查询资产统计信息
    public List<Map<String, Object>> getMaterialStatisticsInfo(String curStatusCode);

    //查询业务状态数量
    public int[] getServiceStatusNum();

    /**
     * 通过rfidCode查询电能表信息
     *
     * @param rfidNos 条形码集合
     * @return 电能表
     */
    public List<MdMeter> selectMdMeterByRfidBath(String[] rfidNos);

}
